<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
            封装wait， 函数返回一个promise对象，
                promise对象 在 time 时间以后成为成功状态
             ----使用promise 封装了延时器   
        */
        function wait(time) {
            let p = new Promise(function (resolve, reject) {
                //延时time 时间 ，修改promsie的状态，调用resolve
                setTimeout(() => {
                    resolve()
                }, time);
            });

            // 返回一个promsie对象
            return p;

        }


        let p = wait(2000);
        p.then(function () {
            console.log('2000毫秒以后执行');
        })

        // 2秒打印 绿 ，再过2秒 打印 黄 ，再过2秒 打印 红

        wait(2000).then(function () {
            console.log('绿');
            return wait(2000)
        }).then(function () {
            console.log('黄');
            return wait(2000)

        }).then(function () {
            console.log('红');

        })

        // function hld() {

        //     wait(2000).then(function () {
        //         console.log('绿');
        //         return wait(2000)
        //     }).then(function () {
        //         console.log('黄');
        //         return wait(2000)

        //     }).then(function () {
        //         console.log('红');
        //         hld()

        //     })
        // }

        // hld()



        // setTimeout(() => {
        //     console.log('绿');
        //     setTimeout(() => {
        //         console.log('黄');
        //         setTimeout(() => {
        //             console.log('红');

        //         }, 2000);

        //     }, 2000);

        // }, 2000)

    </script>

</body>

</html>